package org.jeecg.modules.service;

import org.apache.ibatis.annotations.Param;
import org.jeecg.cuckoo.dao.CuUserDetailsDao;
import org.jeecg.modules.entity.CuUserDetails;
import com.baomidou.mybatisplus.extension.service.IService;

import javax.xml.crypto.Data;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @Description: 用户明显表
 * @Author: jeecg-boot
 * @Date: 2024-07-11
 * @Version: V1.0
 */
public interface ICuUserDetailsService extends IService<CuUserDetails> {

    /**
     * 新增
     *
     * @param cuUserDetails 实体对象
     * @return
     */
    boolean save(CuUserDetails cuUserDetails);

    /**
     * 通过id删除
     */
    boolean removeById(String id);

    /**
     * 批量删除
     *
     * @param ids
     * @return
     */
    boolean removeByIds(List<String> ids);

    /**
     * 编辑
     *
     * @param cuUserDetails
     * @return
     */
    boolean updateById(CuUserDetails cuUserDetails);

    /**
     * 通过id查询
     *
     * @param id
     * @return
     */
    CuUserDetails getById(String id);


    /**
     * 生成一个唯一的邀请码
     */
    String generateInvitationCode();

    /**
     * 根据用户名获取用户信息
     */
    CuUserDetails getByUsername(String username);

    /**
     * 获取上级
     * @param registerCode
     * @param level
     * @return
     */
    List<CuUserDetails> getParentList(String registerCode, Integer level);

}
